1. Field of the Invention
The present disclosure relates to a method for transmitting data in a full-mesh network. Specifically, the disclosure relates to distributing and transmitting the data via multiple links and multiple intermediate nodes.
2. Description of Related Art
High speed systems require full connectivity between processing engines. A processing engine (“node”) has a certain processing capacity. A processing engine is typically associated with a specific set of hardware resources limited in their physical location, for example, a specific line card, a shelf or a rack.
Traditionally, inter-node connectivity is used in the communication and computing industry with one of two methods: (i) switch connectivity and (ii) full mesh connectivity. An example of switch connectivity is Clos switching that uses a switching stage between nodes. Each node that wants to send data to another node sends the data to a switch. The switch sends the data to either a single destination node or multiple destination nodes (broadcast or multicast). One disadvantage of the switch connectivity is that the switch size and complexity increases as the number of nodes increases. A switch with a larger number of nodes requires more processing power, for example, to accommodate for switch overhead and for inefficiency in scheduling traffic from multiple nodes to the same destination node.
In full mesh connectivity, each node is connected with all the other nodes (point-to-point connectivity). When a source node sends data to a destination node, it sends the data over links directly connected to the destination node. In case of multicast traffic, a source node multiplies the data locally and sends a copy to each destination node via links directly connected to the destination node. The full mesh connectivity has certain disadvantages. For example, when an additional node is added to the system, additional links should be connected between each existing node and the new node with enough capacity for node-to-node link capacity. At least one link from every existing node is unplugged from each other and plugged into the new node. The number of links to be re-plugged is equal to or larger than the number of existing nodes, or new links must be added.
In a typical full mesh connectivity, a system of N number of nodes, where each node has capacity CN and M number of links, requires that each node can accommodate total capacity of at least (N−1)*CN. In this case, the number of links can be at least (N−1)*CN/CL, where CL corresponds to a single link capacity. In addition, once N nodes are connected in full mesh, adding additional nodes to the system downgrades the performance, unless the total number of links M per node increases.